#ifndef MISSILEOBJECT_H
#define MISSILEOBJECT_H

#include "BaseObject.h"

class MissileObject
	: public BaseObject
{
public:
	MissileObject(std::string actorID);
	MissileObject(boost::shared_ptr<MissileObject> ref, const float x, const float y, const float z, btMatrix3x3 &basis, btVector3 &direction);
	~MissileObject(void);
	virtual void collision(BaseObjectPtr obj, btVector3 &point);
	virtual ObjectType getType(void) const;
	virtual void update(const unsigned long elapsedTime);
	virtual void kill(void);
	void setPower(const float power);
	float getSpeed(void) const;
	unsigned long getLifeTime(void) const;
	void setLoadedParticle(const bool loaded);
protected:
	void readBaseObjectFromXML(boost::shared_ptr<SettingsManager> sm);
	bool mSync;
	btVector3 mDirection;
	btMatrix3x3 mBasis;
	float mSpeed;
	unsigned long mLifeTime;
	float mPower;
	bool mLoadedParticle;
	Ogre::SceneNode *mParticle;
};

typedef boost::shared_ptr<MissileObject> MissileObjectPtr;

#endif